
package com.tyk.bookstore.back.payment.service;

import com.tyk.bookstore.back.payment.manager.excel.model.ShopStatementExcelVo;
import com.tyk.bookstore.back.payment.model.query.ShopStatementAddQuery;
import com.tyk.bookstore.back.payment.model.query.ShopStatementPageQuery;
import com.tyk.bookstore.back.payment.model.query.ShopStatementUpdateQuery;
import com.tyk.bookstore.back.payment.model.vo.ShopStatementPageVo;
import com.tyk.bookstore.back.payment.model.vo.ShopStatementVo;

import java.util.List;
import java.util.Set;

/**
 * @author tyk
 * @description 书店流水
 */
public interface ShopStatementService {

    /**
     * 根据书店流水ID获取书店流水详情
     *
     * @param id 书店流水ID
     * @return 书店流水详情
     */
    ShopStatementVo getById(Long id);

    /**
     * 分页查询书店流水
     *
     * @param query 查询参数
     * @return 书店流水列表
     */
    ShopStatementPageVo getPage(ShopStatementPageQuery query);

    /**
     * 添加书店流水
     *
     * @param query 书店流水信息
     */
    void add(ShopStatementAddQuery query);

    /**
     * 更新书店流水
     *
     * @param query 书店流水信息
     */
    void updateById(ShopStatementUpdateQuery query);

    /**
     * 根据ID删除书店流水
     *
     * @param id 书店流水ID
     */
    void deleteById(Long id);

    /**
     * 根据ID批量删除书店流水
     *
     * @param idSet 书店流水ID集合
     */
    void deleteBatchByIdSet(Set<Long> idSet);

    /**
     * 获取Excel导出数据
     *
     * @param query 同分页查询参数
     * @return Excel导出数据
     */
    List<ShopStatementExcelVo> getShopStatementExcelVoList(ShopStatementPageQuery query);
}

